home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 7 / Apprentice-Release7.iso / Source Code / C / Applications / Moscow ML 1.42 / src / mosmllib / Math.sml < prev    next >
Encoding:
Text File  |  1997-08-18  |  942 b   |  37 lines  |  [TEXT/R*ch]

  1. (* Math.sml, 1995-02-21, 1995-11-06 *)
  2.  
  3. type real = real
  4.  
  5. val pi = 3.14159265358979323846;
  6. val e  = 2.7182818284590452354;
  7.  
  8. prim_val sqrt : real -> real = 1 "sml_sqrt";
  9. prim_val sin  : real -> real = 1 "sml_sin";
  10. prim_val cos  : real -> real = 1 "sml_cos";
  11. prim_val atan : real -> real = 1 "atan_float";
  12. prim_val asin : real -> real = 1 "sml_asin";
  13. prim_val acos : real -> real = 1 "sml_acos";
  14.  
  15. fun tan r = (sin r / cos r) handle Div => raise Domain;
  16.  
  17. local 
  18.     prim_val atan2_ : real -> real -> real = 2 "sml_atan2";
  19.     prim_val pow_   : real -> real -> real = 2 "sml_pow";
  20. in
  21.     fun atan2(x, y) = atan2_ x y;
  22.     fun pow (x, y) = pow_ x y;
  23. end
  24.  
  25. prim_val exp : real -> real = 1 "sml_exp";
  26. prim_val ln  : real -> real = 1 "sml_ln";
  27.  
  28. local 
  29.     val ln10 = ln 10.0 
  30. in 
  31.     fun log10 r = ln r / ln10
  32. end;
  33.  
  34. prim_val sinh : real -> real = 1 "sml_sinh";
  35. prim_val cosh : real -> real = 1 "sml_cosh";
  36. prim_val tanh : real -> real = 1 "sml_tanh";
  37.